package com.jielihaofeng.netty.bytebuf;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;

import static com.jielihaofeng.netty.bytebuf.TestByteBuf.log;
/**
 * @author Johnnie Wind
 * @description 测试ByteBuf写入
 * @date 2021/11/10 14:50
 */
public class TestByteBufWrite {
    public static void main(String[] args) {
        ByteBuf buf = ByteBufAllocator.DEFAULT.buffer();

//        // 写入 boolean
//        buf.writeBoolean(true);
//        log(buf);

//        // 写入 byte
//        buf.writeByte("a".getBytes()[0]);
//        log(buf);
//
//        // 写入 short
//        buf.writeShort(128);
//        log(buf);

//        // 写入 int 大端写入
//        buf.writeInt(256);
//        log(buf);
//
//        // 写入 int 小端写入
//        buf.writeIntLE(256);
//        log(buf);

        // 写入 ByteBuffer
//        buf.writeBytes(Charset.defaultCharset().encode("你好"));
//        log(buf);

//        // 写入 4个字节
//        buf.writeBytes(new byte[]{1,2,3,4});
//        log(buf);

        // set 可以在对应位置开始赋值，会覆盖，并且如果长度不够会截取
//        buf.setBytes(2,Charset.defaultCharset().encode("hello"));
//        log(buf);
//        buf.setBoolean(3,true);
//        log(buf);

        // 超过最大容量 2147483647 会报错
//        for (int i = 0; i < 2147483647; i++) {
//            buf.writeByte(1);
//        }

        buf.writeBytes(new byte[]{1,2,3,4});
        System.out.println(buf.readByte());
        System.out.println(buf.readByte());
        System.out.println(buf.readByte());
        System.out.println(buf.readByte());
        log(buf);

    }
}
